package com.aivin.maproutelib.bean;

import com.aivin.maproutelib.line.HelperLine;
import com.amap.api.maps.model.LatLng;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


public class WaypointInfo implements Cloneable, Serializable {
    /**
     * latitude  纬度
     */
    private double latitude;
    /**
     * longitude 经度
     */
    private double longitude;
    /**
     * 经过该点的线（共两条）
     */
    private List<HelperLine> passedThePointLines;

    /**
     * @param latitude lat 纬度
     * @param longitude lng 经度
     */
    public WaypointInfo(double latitude, double longitude) {
        passedThePointLines = new ArrayList<>();
        this.latitude = latitude;
        this.longitude = longitude;
    }


    public WaypointInfo(LatLng latLng) {
        passedThePointLines = new ArrayList<>();
        this.latitude = latLng.latitude;
        this.longitude = latLng.longitude;
    }

    /**
     * 添加经过这个点的一条边（共两条）
     */
    public void addAlinePassedThePoint(HelperLine line) {
        if (!passedThePointLines.contains(line)) {
            passedThePointLines.add(line);
        }
    }

    @Override
    protected WaypointInfo clone() throws CloneNotSupportedException {
        WaypointInfo clone = (WaypointInfo) super.clone();
        clone.getpassedMeLines().clear();
        return clone;
    }

    /**
     * 或得经过这个点的所有边（共两条）
     */
    public List<HelperLine> getpassedMeLines() {
        return passedThePointLines;
    }


    public LatLng getLatLng( ) {
        return new LatLng(latitude, longitude);
    }

    public double getLatitude() {
        return latitude;
    }

    public double getLongitude() {
        return longitude;
    }

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }

    public void setLongitude(double y) {
        this.longitude = y;
    }

}
